

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<base target="_top">
<style type="text/css">
  

/* default css */

table {
  font-size: 1em;
  line-height: inherit;
  border-collapse: collapse;
}


tr {
  
  text-align: left;
  
}


div, address, ol, ul, li, option, select {
  margin-top: 0px;
  margin-bottom: 0px;
}

p {
  margin: 0px;
}


pre {
  font-family: Courier New;
  white-space: pre-wrap;
  margin:0;
}

body {
  margin: 6px;
  padding: 0px;
  font-family: Verdana, sans-serif;
  font-size: 10pt;
  background-color: #ffffff;
  color: #000;
}


img {
  -moz-force-broken-image-icon: 1;
}

@media screen {
  html.pageview {
    background-color: #f3f3f3 !important;
    overflow-x: hidden;
    overflow-y: scroll;
  }

  

  body {
    min-height: 1100px;
    
    counter-reset: __goog_page__;
  }
  
  * html body {
    height: 1100px;
  }
  /* Prevent repaint errors when scrolling in Safari. This "Star-7" css hack
     targets Safari 3.1, but not WebKit nightlies and presumably Safari 4.
     That's OK because this bug is fixed in WebKit nightlies/Safari 4 :-). */
  html*#wys_frame::before {
    content: '\A0';
    position: fixed;
    overflow: hidden;
    width: 0;
    height: 0;
    top: 0;
    left: 0;
  }
  
  .pageview body {
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
    border-right: 2px solid #bbb;
    border-bottom: 2px solid #bbb;
    width: 648px !important;
    margin: 15px auto 25px;
    padding: 40px 50px;
  }
  /* IE6 */
  * html {
    overflow-y: scroll;
  }
  * html.pageview body {
    overflow-x: auto;
  }
  

  
    
    .writely-callout-data {
      display: none;
    }
    

    .writely-footnote-marker {
      background-image: url('MISSING');
      background-color: transparent;
      background-repeat: no-repeat;
      width: 7px;
      overflow: hidden;
      height: 16px;
      vertical-align: top;

      
      -moz-user-select: none;
    }
    .editor .writely-footnote-marker {
      cursor: move;
    }
    .writely-footnote-marker-highlight {
      background-position: -15px 0;
      -moz-user-select: text;
    }
    .writely-footnote-hide-selection ::-moz-selection, .writely-footnote-hide-selection::-moz-selection {
      background: transparent;
    }
    .writely-footnote-hide-selection ::selection, .writely-footnote-hide-selection::selection {
      background: transparent;
    }
    .writely-footnote-hide-selection {
      cursor: move;
    }

    /* Comments */
    .writely-comment-yellow {
      background-color: #ffffd7;
    }
    .writely-comment-orange {
      background-color: #ffe3c0;
    }
    .writely-comment-pink {
      background-color: #ffd7ff;
    }
    .writely-comment-green {
      background-color: #d7ffd7;
    }
    .writely-comment-blue {
      background-color: #d7ffff;
    }
    .writely-comment-purple {
      background-color: #eed7ff;
    }

  


  
  .br_fix span+br:not(:-moz-last-node) {
    
    position:relative;
    
    left: -1ex
    
  }

  
  #cb-p-tgt {
    font-size: 8pt;
    padding: .4em;
    background-color: #ddd;
    color: #333;
  }
  #cb-p-tgt-can {
    text-decoration: underline;
    color: #36c;
    font-weight: bold;
    margin-left: 2em;
  }
  #cb-p-tgt .spin {
    width: 16px;
    height: 16px;
    background: url(//ssl.gstatic.com/docs/clipboard/spin_16o.gif) no-repeat;
  }
}

h6 { font-size: 8pt }
h5 { font-size: 8pt }
h4 { font-size: 10pt }
h3 { font-size: 12pt }
h2 { font-size: 14pt }
h1 { font-size: 18pt }

blockquote {padding: 10px; border: 1px #DDD dashed }

.webkit-indent-blockquote { border: none; }

a img {border: 0}

.pb {
  border-width: 0;
  page-break-after: always;
  /* We don't want this to be resizeable, so enforce a width and height
     using !important */
  height: 1px !important;
  width: 100% !important;
}

.editor .pb {
  border-top: 1px dashed #C0C0C0;
  border-bottom: 1px dashed #C0C0C0;
}

div.google_header, div.google_footer {
  position: relative;
  margin-top: 1em;
  margin-bottom: 1em;
}


/* Table of contents */
.editor div.writely-toc {
  background-color: #f3f3f3;
  border: 1px solid #ccc;
}
.writely-toc > ol {
  padding-left: 3em;
  font-weight: bold;
}
ol.writely-toc-subheading {
  padding-left: 1em;
  font-weight: normal;
}
/* IE6 only */
* html writely-toc ol {
  list-style-position: inside;
}
.writely-toc-none {
  list-style-type: none;
}
.writely-toc-decimal {
  list-style-type: decimal;
}
.writely-toc-upper-alpha {
  list-style-type: upper-alpha;
}
.writely-toc-lower-alpha {
  list-style-type: lower-alpha;
}
.writely-toc-upper-roman {
  list-style-type: upper-roman;
}
.writely-toc-lower-roman {
  list-style-type: lower-roman;
}
.writely-toc-disc {
  list-style-type: disc;
}

/* Ordered lists converted to numbered lists can preserve ordered types, and
   vice versa. This is confusing, so disallow it */
ul[type="i"], ul[type="I"], ul[type="1"], ul[type="a"], ul[type="A"] {
  list-style-type: disc;
}

ol[type="disc"], ol[type="circle"], ol[type="square"] {
  list-style-type: decimal;
}

/* end default css */


  /* default print css */
  @media print {
    body {
      padding: 0;
      margin: 0;
    }

    div.google_header, div.google_footer {
      display: block;
      min-height: 0;
      border: none;
    }

    div.google_header {
      flow: static(header);
    }

    /* used to insert page numbers */
    div.google_header::before, div.google_footer::before {
      position: absolute;
      top: 0;
    }

    div.google_footer {
      flow: static(footer);
    }

    /* always consider this element at the start of the doc */
    div#google_footer {
      flow: static(footer, start);
    }

    span.google_pagenumber {
      content: counter(page);
    }

    span.google_pagecount {
      content: counter(pages);
    }

    .endnotes {
      page: endnote;
    }

    /* MLA specifies that endnotes title should be 1" margin from the top of the page. */
    @page endnote {
      margin-top: 1in;
    }

    callout.google_footnote {
      
      display: prince-footnote;
      footnote-style-position: inside;
      /* These styles keep the footnote from taking on the style of the text
         surrounding the footnote marker. They can be overridden in the
         document CSS. */
      color: #000;
      font-family: Verdana;
      font-size: 10.0pt;
      font-weight: normal;
    }

    /* Table of contents */
    #WritelyTableOfContents a::after {
      content: leader('.') target-counter(attr(href), page);
    }

    #WritelyTableOfContents a {
      text-decoration: none;
      color: black;
    }

    /* Comments */
    .writely-comment-yellow {
      background-color: #ffffd7;
    }
    .writely-comment-orange {
      background-color: #ffe3c0;
    }
    .writely-comment-pink {
      background-color: #ffd7ff;
    }
    .writely-comment-green {
      background-color: #d7ffd7;
    }
    .writely-comment-blue {
      background-color: #d7ffff;
    }
    .writely-comment-purple {
      background-color: #eed7ff;
    }
  }

  @page {
    @top {
      content: flow(header);
    }
    @bottom {
      content: flow(footer);
    }
    @footnotes {
      border-top: solid black thin;
      padding-top: 8pt;
    }
  }
  /* end default print css */


/* custom css */


/* end custom css */

/* ui edited css */

body {
  font-family: Verdana;
  
  font-size: 10.0pt;
  line-height: normal;
  background-color: #ffffff;
}
/* end ui edited css */


/* editor CSS */
.editor a:visited {color: #551A8B}
.editor table.zeroBorder {border: 1px dotted gray}
.editor table.zeroBorder td {border: 1px dotted gray}
.editor table.zeroBorder th {border: 1px dotted gray}


.editor div.google_header, .editor div.google_footer {
  border: 2px #DDDDDD dashed;
  position: static;
  width: 100%;
  min-height: 2em;
}

.editor .misspell {background-color: yellow}

.editor .writely-comment {
  font-size: 9pt;
  line-height: 1.4;
  padding: 1px;
  border: 1px dashed #C0C0C0
}


/* end editor CSS */

</style>

  
  <title>Systemy rozproszone</title>

</head>

<body 
    
    >
    
    
    
<b style=COLOR:#3d85c6><font size=5>Systemy rozproszone</font></b><br>
<hr size=2><br>
<br>
<b style=COLOR:#3d85c6><font size=3>Opis</font></b><br>
<hr size=2><br>
Celem przedmiotu jest prezentacja teoretycznych i praktycznych aspektów konstrukcji rozproszonych systemów operacyjnych. Prezentowane zagadnienia dotyczą różnych warstw systemu operacyjnego: począwszy od mechanizmów komunikacyjnych, poprzez algorytmy rozproszonego szeregowania i synchronizacji, a skończywszy na aplikacyjnych usługach systemu operacyjnego (systemy plików, usługi katalogowe).<br>
<br>
<br>
<b style=COLOR:#3d85c6><font size=3>Sylabus</font></b><br>
<hr size=2><br>
<b style=COLOR:#3d85c6><font size=3>Autorzy </font></b><br>
<br>
<ul>
  <li>
    Jerzy Brzeziński — Politechnika Poznańska
  </li>
  <li>
    Cezary Sobaniec — Politechnika Poznańska<a id=Wymagania_wst.C4.99pne name=Wymagania_wst.C4.99pne></a><br>
  </li>
</ul>
<br>
<br>
<b style=COLOR:#3d85c6><font size=3>Wymagania wstępne</font></b><br>
<br>
<ul>
  <li>
    Systemy operacyjne
  </li>
  <li>
    Sieci komputerowe
  </li>
  <li>
    Programowanie niskopoziomowe
  </li>
  <li>
    Programowanie obiektowe
  </li>
</ul>
<br>
<br>
<b style=COLOR:#3d85c6><font size=3>Zawartość<br>
<br>
Zagadnienia teoretyczne</font></b><br>
<br>
<ul>
  <li>
    Wprowadzenie:
  </li>
  <ul>
    <li>
      architektura systemów rozproszonych
    </li>
    <li>
      modele przetwarzania rozproszonego
    </li>
    <li>
      mechanizmy komunikacyjne: wymiana komunikatów, komunikacja grupowa
    </li>
  </ul>
  <li>
    Mechanizm zdalnych wywołań procedur (RPC)
  </li>
  <li>
    Systemy z rozproszoną pamięcią współdzieloną (DSM):
  </li>
  <ul>
    <li>
      modele spójności (model atomowy, sekwencyjny, przyczynowy, PRAM, modele o dostępie synchronizowanym)
    </li>
    <li>
      protokoły spójności
    </li>
  </ul>
  <li>
    Replikacja w rozproszonych systemach mobilnych:
  </li>
  <ul>
    <li>
      modele spójności zorientowane na klienta (gwarancje sesji)
    </li>
    <li>
      protokoły spójności
    </li>
  </ul>
  <li>
    Rozproszone szeregowanie:
  </li>
  <ul>
    <li>
      problematyka równoważenia obciążeń, algorytmy i ich klasyfikacja
    </li>
  </ul>
  <li>
    Synchronizacja zegarów:
  </li>
  <ul>
    <li>
      zegary fizyczne (algorytmy Berkeley, Cristiana)
    </li>
    <li>
      zegary logiczne (skalarny Lamporta, wektorowy Fidge'a, Matterna)
    </li>
  </ul>
  <li>
    Elekcja: algorytm tyrana, elekcja w pierścieniu
  </li>
  <li>
    Rozproszone zakleszczenie – modele i algorytmy detekcji
  </li>
  <li>
    Praktyczne realizacje niektórych usług rozproszonych systemów operacyjnych:
  </li>
  <ul>
    <li>
      rozproszone systemy plików (NFS, AFS, Coda, SMB/CIFS)
    </li>
    <li>
      usługi katalogowe (LDAP, AD)
    </li>
  </ul>
</ul>
<br>
<br>
<b style=COLOR:#3d85c6><font size=3>Zagadnienia Praktyczne</font></b>
<ul>
  <br>
  <li>
    Mechanizm zdalnego wywołania procedur na przykładzie Sun RPC:
  </li>
  <ul>
    <li>
      synchroniczne i asynchroniczne wywołania zdalnych procedur
    </li>
    <li>
      wywołania zwrotne
    </li>
  </ul>
  <li>
    Rozproszone systemy plików – uruchomienie, konfiguracja, strojenie:
  </li>
  <ul>
    <li>
      Network File System
    </li>
    <li>
      SMB/CIFS
    </li>
  </ul>
  <li>
    Usługi katalogowe – konfiguracja, integracja z innymi usługami systemu operacyjnego:
  </li>
  <ul>
    <li>
      Network Information System
    </li>
    <li>
      LDAP
    </li>
  </ul>
</ul>
<br>
<br>
<b style=COLOR:#3d85c6><font size=3>Literatura</font></b><br>
<br>
<ol>
  <li>
    A. S. Tanenbaum, M. van Steen, <i>Distributed Systems: Principles and Paradigms</i>, Prentice-Hall, Inc., 2002
  </li>
  <li>
    P. K. Sinha, <i>Distributed Operating Systems – Concepts and Design</i>, IEEE Press, 1997.
  </li>
  <li>
    A. S. Tanenbaum, <i>Computer Networks</i>, Pearson Education, Inc., 2003.
  </li>
  <li>
    G. S. Hura, M. Singhal, <i>Data and Computer Communications. Networking and Internetworking</i>, CRC Press LLC, Boca Raton, Florida, 2001.
  </li>
  <li>
    M. Singhal, N. G. Shivaratri, <i>Advanced Concepts in Operating Systems –Disitributed, Database, and Multiprocessor Operating Systems</i>, McGraw Hill, 1994.
  </li>
  <li>
    A. Gościński, <i>Distributed Operating Systems, The Logical Design</i>, Addison Wesley, 1991.
  </li>
  <li>
    A. Silberschatz, J. Peterson, P. Galvin, <i>Operating Systems Concepts</i>, Addison Wesley, 1991.
  </li>
  <li>
    A. S. Tanenbaum, <i>Modern Operating Systems</i>, Prentice-Hall, Inc., 1992.
  </li>
  <li>
    G. Tel, <i>Introduction to Distributed Algorithms</i>, Cambridge University Press, 1994.
  </li>
  <li>
    M. Gabassi, B. Dupouy. <i>Przetwarzanie rozproszone w systemie UNIX</i>. Lupus, 1995.
  </li>
</ol>
<br>
<br>
<b style=COLOR:#3d85c6><font size=3>Wykłady</font></b><br>
<br>
<ol>
  <li>
    Wstęp (PDF, PDF kolor, Flash)
  </li>
  <li>
    Komunikacja (PDF, PDF kolor, Flash); Pytania
  </li>
  <li>
    Komunikacja grupowa, (PDF, PDF kolor, Flash); Pytania
  </li>
  <li>
    Procesy (PDF, PDF kolor, Flash); Pytania
  </li>
  <li>
    Nazewnictwo (PDF, PDF kolor, Flash)
  </li>
  <li>
    Synchronizacja zegarów i rozproszone transakcje (PDF, PDF kolor, Flash); Pytania
  </li>
  <li>
    Elekcja, wzajemne wykluczanie i zakleszczenie (PDF, PDF kolor, Flash); Pytania
  </li>
  <li>
    Zwielokrotnianie i spójność (PDF, PDF kolor, Flash)
  </li>
  <li>
    Modele spójności (PDF, PDF kolor, Flash)
  </li>
  <li>
    Modele spójności nastawione na klienta (PDF, PDF kolor, Flash)
  </li>
  <li>
    Niezawodne systemy rozproszone (PDF, PDF kolor, Flash)
  </li>
  <li>
    Systemy rozproszone oparte na obiektach (PDF, PDF kolor, Flash); Pytania
  </li>
  <li>
    Rozproszone systemy plików (PDF, PDF kolor, Flash); Pytania
  </li>
  <li>
    LDAP (PDF, PDF kolor, Flash)
  </li>
</ol>
<br>
<br></body>
</html>